package com.financing.platform.service;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import com.financing.platform.dto.CountInfoDTO;
import com.financing.platform.vo.AuthUserDetailedListVO;
import com.financing.platform.vo.OrderDetailedListVO;
import com.financing.platform.vo.SalesPerformanceVO;

/**
 * @Title: ICountInfo.java
 * @Package com.financing.platform.service
 * @Description: 统计信息server接口 
 * @author  qiye
 * @date 2014年10月31日 上午9:45:59
 * @version V1.0
 */
public interface ICountInfoService extends IBaseService {
	
	/**
	 * 
	 * @Title: queryCountInfoList
	 * @Description: 查询统计信息
	 * @param @param countInfoDTO
	 * @param @return   
	 * @return List<CountInfoDTO>   
	 * @throws
	 */
	public List<CountInfoDTO> queryCountInfoList(Map<String,Object> params);
	
	/**
	 * @throws SQLException 
	 * 
	 * @Title: queryTotalCountInfo
	 * @Description: 查询统计总数信息 
	 * @param @return   
	 * @return Map<String,Object>   
	 * @throws
	 */
	public Map<String,Object> queryTotalCountInfo() throws SQLException;
	
	/**
	 * 
	* @Title: OrderDetailedList 
	* @Description: 查询订单清单-list
	* @param   orderDetailedListVO
	* @param @return    
	* @returnList<OrderDetailedListVO>   
	* @throws
	 */
	public List<OrderDetailedListVO> queryOrderDetailedList(OrderDetailedListVO orderDetailedListVO) throws SQLException;
	
	/**
	 * 
	* @Title: OrderDetailedListCount 
	* @Description: 查询订单清单-list count
	* @param   orderDetailedListVO
	* @param @return    
	* @returnList<OrderDetailedListVO>  
	* @throws
	 */
	public int queryOrderDetailedListCount(OrderDetailedListVO orderDetailedListVO) throws SQLException;
	/**
	 * 
	* @Title: OrderDetailedList 
	* @Description: 查询认证用户清单-list
	* @param   orderDetailedListVO
	* @param @return    
	* @returnList<OrderDetailedListVO>   
	* @throws
	 */
	public List<AuthUserDetailedListVO> queryAuthUserDetailedList(AuthUserDetailedListVO authUserDetailedListVO) throws SQLException;
	/**
	 * 
	* @Title: OrderDetailedListCount 
	* @Description: 查询订单清单-list count
	* @param   orderDetailedListVO
	* @param @return    
	* @returnList<OrderDetailedListVO>  
	* @throws
	 */
	public int queryAuthUserDetailedListCount(AuthUserDetailedListVO authUserDetailedListVO) throws SQLException;

	/**
	 * @param salesPerformanceVO
	 * @return
	 * @throws SQLException
	 */
	public List<SalesPerformanceVO> querySalesPerformance(SalesPerformanceVO salesPerformanceVO)throws SQLException;
	
	//合并老系统
	/**
	 * 运营统计报表
	 * @return
	 * @throws SQLException
	 */
	public List<Map<String, Object>> queryOperateStatistics() throws SQLException;
	/**
	 *  订单 -月销售统计
	 * @return
	 * @throws SQLException
	 */
	public List<Map<String, Object>> queryOrderCountByMonth() throws SQLException;
	/**
	 *  订单用户占认证比例
	 * @return
	 * @throws SQLException
	 */
	public Map<String, Object> queryOrderUserPer() throws SQLException;
	
	/**
     * 根据月份查询注册用户数
     * @param params
     * @return
     */
	public List<Map<String, Object>> queryFaUserRegisterByMonthCount(Map<String,Object> params) throws SQLException;
	
	/**
	 * 查询不同审核状态的用户数
	 * @param params
	 * @return
	 * @throws SQLException
	 */
	public List<Map<String, Object>> queryFaUserRoleCount(Map<String,Object> params) throws SQLException;

	/**
	 * 查询所有的用户数
	 * @param params
	 * @return
	 * @throws SQLException
	 */
    public List<Map<String, Object>> queryFaUserCount(Map<String,Object> params) throws SQLException;

	/**
	 * 认证-理财师role占比
	 * @param params
	 * @return
	 * @throws SQLException
	 */
	public List<Map<String, Object>> queryFaUserRoleProportion(Map<String,Object> params) throws SQLException;

	/**
	 * 订单-认证理财师role占比
	 * @param params
	 * @return
	 * @throws SQLException
	 */
	public List<Map<String, Object>> queryOrderFaUserRoleProportion(Map<String,Object> params) throws SQLException;
	/**
	 *  理财师总销量top 
	 * @return
	 * @throws SQLException
	 */
	public List<Map<String, Object>> queryUserTotalSales(CountInfoDTO countInfo) throws SQLException;

	
}

	